package com.ruoyi.riskrule.service;

import com.ruoyi.bizsys.domain.AppDeviceInfo;
import com.ruoyi.bizsys.domain.ApplyContacts;
import com.ruoyi.bizsys.domain.CreditApply;

import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * @Author: Jamnsin
 * @Date: 2021/3/1 10:39 上午
 */
public interface ICreditFieldService {

    //历史授信拒绝次数
    public int getCntCreditReject(String userId);

    //30天内授信拒绝次数
    public int getCntCreditReject30(String userId);

    //根据实名BVN手机号查询关联的bvn账号总数
    public int getCntBvn(String bvnPhone);

    //根据实名BVN手机号查询关联的bvn账号总数
    public int getCstMcntMail(String email);

    //最近60天授信申请次数
    public int getCntCredit60Days(String userId);

    //最近60天提现申请次数
    public int getCntApply60Days(String userId);

    //历史提现拒绝次数
    public int getCntWithdrawReject(String userId);

    //客户关联的IMEI个数
    public int getCntImei(String fingerprint);

    //设备关联用户数(包括本人)
    public int getCntDevice(String fingerprint);

    //最近已审批的订单
    CreditApply getApprovedRecentResult(String userId);

    //当前提现申请距该客户最近一次授信申请的时间
    int getLastTimeInterval(String custNo);

    /**
     * 获取所有逾期客户的实名信息
     * @return
     */
    List<Map<String, String>> getOverdueRealNames();

    int getCntwifino(String wifiName,String countryState);

    int getCntwifiodno(String wifiName,String countryState);

    int getCntgpsno(String longitude, String latitude);

    int getCntgpsodno(String longitude, String latitude);

    int getUseDistinctFingerprint(String userId);

    int getUseDistinctNewFingerprint(String userId,String table,String deviceType);

    /**
     * 客户当前设备ID不为空，关联app_device_info表内同new_fingerprint下不同cust_no去重数目
     * @param fingerprint
     * @return
     */
    String fingerprintRelationCustNum(String fingerprint,String deviceTable,String deviceType);

    /**
     * 客户在授信和交易环节使用的旧设备指纹去重数
     * @param userId
     * @return
     */
    int custNumByFingerprint(String userId);

    /**
     * 客户在授信和交易环节使用的旧设备指纹去重数
     * @param userId
     * @return
     */
    int custNumByNewFingerprint(String userId,String table,String deviceType);

    /**
     * 客户第一次解析成功不为空的州
     * @param userId
     * @return
     */
    String getFristcountrystate(String userId);

    /**
     * 当前IMEI(若获取两个，则将当前IEMI转换成数组来和库中匹配)关联的不同客户数
     * @param imeis
     * @return
     */
    int getImeiCutCount(String[] imeis);

    /**
     * 获取设备首次提交版本
     * @param userUuid
     * @return
     */
    String getDeviceFirstVersion(String userUuid);

    Map<String, Integer> getCreditApplyNums(String userId);

    String getOverdueFlagByUserId(String userUuid);

    String getCntcontactRelation(String contactPhone);
}
